# 单线程运行的StategyContext
# 在单线程状态下，不开启线程，而是收到每个md后都直接交由策略处理

from StrategyContext import StrategyContext


class SynStrategyContext(StrategyContext):

    def __init__(self, strategy):
        StrategyContext.__init__(self, strategy)
        self.strategy.set_strategy_context(self)

    # 同步模式下，先处理其他信息，再推送行情
    def put_md(self, md):
        self.strategy.process_event('MarketData', md)

    def put_event(self, event):
        self.strategy.process_event(event['type'], event['data'])
